Device for managing operations of accessories

ABSTRACT

A system that incorporates teachings of the present disclosure may include, for example, an apparatus having a processor to detect a gaming accessory stimulation associated with a programmable layer of a number of programmable layers. The processor identifies a substitute gaming accessory stimulation of the programmable layer of the number of programmable layers of the gaming accessory. The substitute gaming accessory stimulation of the programmable layer is associated with the gaming accessory stimulation of the programmable layer of the number of programmable layers, according to a user profile of a number of user profiles associated with a user account. Other predetermined associations of stimulations of the gaming accessory with other substitute accessory stimulations are recorded in other user profiles of the number of user profiles, and the substitute gaming accessory stimulation is provided to a computing device to manage a gaming software application. Additional embodiments are disclosed.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a continuation of and claims priority to U.S. patentapplication Ser. No. 14/555,064, filed Nov. 26, 2014, by Wolff-Petersenet al., which is a continuation of U.S. patent application Ser. No.12/509,509, filed Jul. 27, 2009 by Wolff-Petersen et al., entitled“Device for Managing Operations of Accessories,” issued as U.S. Pat. No.8,956,234. All sections of the aforementioned application(s) areincorporated herein by reference in its entirety.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to accessory managementapplications, and more specifically to a device for managing operationsof accessories.

BACKGROUND

It is common today for gamers to utilize more than one gaming accessory.This is especially true of gamers who play Massively Multiplayer On-line(MMO) games in a team or individual configuration. Gamers can have attheir disposal accessories such as a keyboard, a general purpose gamingpad, a mouse, a gaming console controller, a headset with a built-inmicrophone to communicate with other players, a joystick, a computerconsole, or other common gaming accessories.

A gamer can frequently use a combination of these accessories in onegame (e.g., headset, a keyboard, and mouse). Efficient management andutilization of these accessories can frequently impact a gamer's abilityto compete.

Accessory management can have utility in other disciplines which may notrelate to gaming applications. Efficient use of accessories in theseother disciplines can be important to users.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an illustrative embodiment of a Graphical User Interface(GUI) generated by an Accessory Management Software (AMS) applicationaccording to the present disclosure;

FIG. 2 depicts an embodiment for programming an apparatus with the AMSapplication;

FIGS. 3-4 depict illustrative embodiments for utilizing the apparatus;

FIG. 5 depicts an illustrative embodiment of a block diagram of theapparatus;

FIGS. 6-7 depict illustrative embodiments of the GUI of FIG. 1;

FIGS. 8-10 depict illustrative methods describing the operation of theAMS application and the apparatus; and

FIG. 11 depicts an illustrative diagrammatic representation of a machinein the form of a computer system within which a set of instructions,when executed, may cause the machine to perform any one or more of themethodologies disclosed herein.

DETAILED DESCRIPTION

One embodiment of the present disclosure can entail an apparatus havinga controller to record an association of at least one of a plurality ofstimulations that can be generated by a gaming accessory with one ormore substitute accessory stimulations, establish communications with acomputing device communicatively coupled to a gaming softwareapplication, establish communications with the gaming accessory, receivefrom the gaming accessory a stimulation, detect a match between theassociation and the received stimulation, retrieve the one or moresubstitute accessory stimulations, and transmit the one or moresubstitute accessory stimulations to the gaming software application.

One embodiment of the present disclosure can entail a computer-readablestorage medium operating in a portable apparatus that manages accessorystimulations supplied to a computing device by a gaming accessory. Thestorage medium can have computer instructions to receive from the gamingaccessory a stimulation, retrieve one or more substitute accessorystimulations, and transmit the one or more substitute accessorystimulations to the computing device to manage operations of a gamingsoftware application communicatively coupled to the computing device.

One embodiment of the present disclosure can entail receiving astimulation from a gaming accessory, replacing the stimulation with oneor more substitute accessory stimulations, and transmitting the one ormore substitute accessory stimulations to a computing device to manage agaming software application communicatively coupled to the computingdevice.

One embodiment of the present disclosure can entail a gaming accessoryhaving a controller to detect a selection of an input function, andtransmit a stimulus to an apparatus that transmits one or moresubstitute accessory stimulations to a computer system or gaming consolefor controlling operations of a gaming software application.

One embodiment of the present disclosure can entail a computing devicehaving a controller to receive from an apparatus one or more substituteaccessory stimulations to control operations of a gaming softwareapplication. The apparatus is can be operable to receive a stimulationfrom a gaming accessory, replace the stimulation with the one or moresubstitute stimulations, and transmit the one or more substitutestimulations to the computing device.

One embodiment of the present disclosure can entail receiving astimulation from an accessory, replacing the stimulation with one ormore substitute accessory stimulations, and transmitting the one or moresubstitute accessory stimulations to a computing device to manageoperation of a software application communicatively coupled to thecomputing device.

FIGS. 1, 5 and 6 depict illustrative embodiments of a Graphical UserInterface (GUI) generated by an Accessory Management Software (AMS)application according to the present disclosure. The AMS application canoperate in a computing device such as a desktop computer, a laptopcomputer, a server, a mainframe computer, or a gaming console. The AMSapplication can also operate in other computing devices with lesscomputing resources such as a cellular phone, a personal digitalassistant, or a media player (such as an iPOD™). From theseillustrations it would be apparent to an artisan with ordinary skill inthe art that the AMS application can operate in any device withcomputing resources.

FIGS. 2-4 depict a portable apparatus 202 programmable by the AMSapplication. FIG. 2 depicts an illustration of how the portableapparatus 202 can be programmed. In this illustration, the portableapparatus can take the form of a Universal Serial Bus (USB) dongle(herein referred to as dongle 202). The dongle 202 can becommunicatively coupled to a computer 204 by a physical interface 206such as a USB port or wireless interface 208 such as Bluetooth orWireless Fidelity (WiFi). The computer 204 can be used to executeoperations of the AMS application. In this configuration, the AMSapplication can be directed to generate associations between accessorystimuli and input functions of accessories which can be programmed inthe dongle 202 as will be described below.

FIGS. 3-4 illustrate a number of embodiments for utilizing the dongle202 with a gaming accessory 302 and a computing device 306 such as agaming console (herein referred to as gaming console 306). In theillustration of FIG. 3, the USB portion of the dongle 202 can bephysically engaged with either the gaming accessory 302 or the gamingconsole 306. The dongle 202 in either of these configurations cancommunicate with the gaming accessory 302 or the gaming console 306 bywireless means 304 (e.g., WiFi or Bluetooth). In FIG. 4, the dongle 202communicates with the gaming accessory 302 and the gaming console 304 byfirst and second wireless means 402, 404 (e.g., Bluetooth, WiFi) whichcan be different or the same. Other embodiments of the apparatus 202 arecontemplated. For instance, the functions in whole or in part of theapparatus 202 can be an integral part of the gaming accessory 302 and/orthe gaming console 304.

FIG. 5 depicts an illustrative embodiment of a block diagram 500 of theapparatus 202. The apparatus 202 can comprise a transceiver 502, a userinterface (UI) 504, a power supply 514, and a controller 506 formanaging operations thereof. The transceiver 502 can support a wirelineinterface such as a version of a USB interface for physically engagingwith computer 204. Other common wireline interfaces (such as Firewireand Ethernet) or proprietary wireline interfaces are contemplated by thepresent disclosure. The transceiver 502 can also be adapted to supportwireless communications. In this latter embodiment, the transceiver 502can utilize commonly available technology to support wireless accesstechnologies such as Bluetooth or WiFi. Other common wireless interfacessuch as Zigbee or proprietary wireless interfaces are contemplated bythe present disclosure.

The UI 504 can include a display 510 such as monochrome or color LCD(Liquid Crystal Display), OLED (Organic Light Emitting Diode) or othersuitable display technology for conveying images such as a menu forprogramming operational parameters of the apparatus 202. The UI 504 canalso include a notification device 512. The notification device 512 canuse common illumination technology such as an LED or OLED (shown asreference 116 in FIGS. 1-3) to inform a user of an operational state ofthe apparatus 202. The notification device 512 can be adapted to presenttwo or more states of operation by way of light and/or colorillumination. For example, the notification device 512 can indicate theapparatus 202 has been programmed, is in operation, is communicativelyengaged with the gaming accessory 302 or gaming console 306, isreceiving power, and so on, according to varying color illuminations.

The apparatus 202 can have a power supply 514 which utilizes commonpower management technologies such as replaceable and rechargeablebatteries, supply regulation technologies, and charging systemtechnologies for supplying energy to the components of the apparatus202. Alternatively, the charging system can utilize external powersources such as DC power supplied over a physical interface such as aUSB port. Other power supply technologies suitable to the presentdisclosure are contemplated.

The controller 506 can utilize computing technologies such as amicroprocessor, and/or an Application Specific Integrated Circuit (ASIC)operably coupled to memory such a Flash, ROM, RAM, SRAM, DRAM orcombinations thereof.

Other components not shown in FIG. 5 are contemplated by the presentdisclosure. For instance, the apparatus 202 can include a reset button(not shown). The reset button can be used to reset the controller 506 ofthe apparatus 202. In yet another embodiment, the apparatus 202 can alsoinclude a factory default setting button positioned below a small holein a housing assembly of the apparatus 202 to force the apparatus 202 tore-establish factory settings. In this embodiment, a user can use aprotruding object such as a pen or paper clip tip to reach into the holeand depress the default setting button.

It will be appreciated that the apparatus 202 as described herein canoperate with more or less components described in FIG. 5. These variantembodiments are contemplated by the present disclosure.

FIGS. 8-10 depict illustrative methods 800-1000 describing the operationof the AMS application and the apparatus 202. Method 800 can begin withstep 802 in which the AMS application is invoked in a computing device.The invocation step can result from a user selection of the AMSapplication from a menu or iconic symbol presented on a desktop of thecomputing device by an operating system (OS) managing operationsthereof. In step 804, the AMS application can detect by way of driversin the OS a plurality of operationally distinct accessoriescommunicatively coupled to the computing device. The accessories can becoupled to the computing device by a tethered interface (e.g., USBcable), a wireless interface (e.g., Bluetooth or WirelessFidelity—WiFi), or combinations thereof.

In the present context, an accessory can represent any type of devicewhich can be communicatively coupled to the computing device and whichcan control aspects of the OS and/or a software application operating inthe computing device. An accessory can represent for example a keyboard,a gaming pad, a mouse, a gaming console controller, a joystick, amicrophone, or a headset with a microphone—just to mention a few. Thekeyboard and gaming pad represent accessories of a similar categorysince their operational parameters are alike.

A mouse, on the other hand, represents an accessory having disparateoperational parameters from the keyboard or gaming pad. For instance,the operational parameters of a keyboard generally consist ofalphanumeric keys, control keys (e.g., Shift, Alt, Ctrl), and functionkeys while the operational parameters of a mouse consist of navigationdata generated by a tracking device such as a laser sensor, buttons toinvoke GUI selections, and settings thereof (e.g., counts or dots perinch, acceleration, scroll speed, jitter control, line straighteningcontrol, and so on). Such distinctions can be used to identify disparatecategories of accessories.

In step 806, the AMS application presents a GUI 101 such as depicted inFIG. 1 with operationally distinct accessories such as the keyboard 108and mouse 110. The GUI 101 presents the accessories 108-116 in ascrollable section 117. One or more accessories can be selected by auser with a common mouse pointer. In this illustration, the keyboard 108and gaming controller 115 were selected with a mouse pointer forcustomization. Upon selecting the keyboard 108 and mouse 110 in section117, the AMS application presents the keyboard 108 and mouse 110 insplit windows 118, 120, respectively, to help the user during thecustomization process.

In step 808, the AMS application can be programmed to detect auser-selection of a particular software application such as a game. Thisstep can be the result of the user entering in a Quick Search field 160the name of a gaming application (e.g., World of Warcraft™). Uponidentifying a gaming application, the AMS application can retrieve instep 810 from a remote or local database gaming application actionswhich can be presented in a scrollable section 139 of the GUIrepresented as “Actions” 130. The actions can be tactical actions 132,communication actions 134, menu actions 136, and movement actions 138which can be used to invoke and manage features of the gamingapplication.

The actions presented descriptively in section 130 of the GUI canrepresent a sequence of accessory input functions which a user canstimulate by button depressions, navigation or speech. For example,depressing the left button on the mouse 110 can represent the tacticalaction “Reload”, while the simultaneous keyboard depressions “Ctrl A”can represent the tactical action “Melee Attack”. For ease of use, the“Actions” 130 section of the GUI is presented descriptively rather thanby a description of the input function(s) of a particular accessory.

Any one of the Actions 130 can be associated with one or more inputfunctions of the accessories by way of a simple drag and drop action.For instance, a user can select a “Melee Attack” by placing a mousepointer 133 over an iconic symbol associated with this action. Upondoing so, the symbol can be highlighted to indicate to the user that theicon is selectable. At this point, the user can select the icon byholding the left mouse button and drag the symbol to any of the inputfunctions (e.g., buttons) of the keyboard 108 or gaming controller 115to make an association with an input function of one of theseaccessories.

For example, the user can drag the Melee Attack symbol to the “O” buttonof the gaming controller 115 thereby causing an association between theselection of the “O” button and the gaming action of a Melee Attack.When the “O” button of the gaming controller 115 is selected duringnormal operation, the AMS application can detect the selection as a“trigger” to generate the key sequence “Ctrl A” which is understood bythe gaming application as a request for a Melee Attack. The gamingapplication receives from the dongle 202 by way of an operating systemin the gaming console 306 the “Ctrl A” sequence as if it had beengenerated by a Qwerty keyboard.

With this in mind, attention is directed to step 812 where the AMSapplication can respond to a user selection of a profile. A profile canbe a device profile or master profile invoked by selecting GUI button156 or 158, each of which can identify the association of actions withinput functions of one or more accessories. If a profile selection isdetected in step 812, the AMS application can retrieve in step 814macro(s) and/or prior associations of actions with the accessories asdefined by the profile. The actions and/or macros defined in the profilecan also be presented in step 816 by the AMS application in the actionscolumn 130 of the GUI 101 to modify or create new associations.

In step 818, the AMS application can also respond to a user selection tocreate a macro. A macro in the present context can mean any actionablecommand which can be recorded by the AMS application. An actionablecommand can represent a sequence of input functions of an accessory,identification of a software application to be initiated by an operatingsystem (OS), or any other recordable stimulus to initiate, control ormanipulate software applications. For instance, a macro can represent auser entering the identity of a software application (e.g., instantmessaging tool) to be initiated by an OS.

A macro can also represent recordable speech delivered by a microphonesingly or in combination with a headset for detection by anothersoftware application through speech recognition or for delivery of therecorded speech to other parties. In yet another embodiment a macro canrepresent recordable navigation of an accessory such as a mouse orjoystick, recordable selections of buttons on a keyboard, a mouse, or amouse pad, and so on. Macros can also be combinations of the aboveillustrations. Macros can created from the GUI 101 by selecting a“Record Macro” button 148. The macro can be given a name and category inuser-defined fields 140 and 142.

Upon selecting the Record Macro button 148, a macro can be generated byselection of input functions on an accessory (e.g., Ctrl A, speech,etc.) and/or by manual entry in field 144 (e.g., typing the name andlocation of a software application to be initiated by an OS). Once themacro is created, it can be tested by selecting button 150 which canrepeat the sequence specified in field 144. The clone button 152 can beselected to replicate the macro sequence if desired. Fields 152 can alsopresent timing characteristics of the stimulation sequence in the macrowith the ability to customize such timing. Once the macro has been fullydefined, selection of button 154 records the macro in step 820. Therecording step can be combined with a step for adding the macro to theassociable items Actions column 130, thereby providing the user themeans to associate the macro with input functions of the accessories.

In step 822, the AMS application can respond to drag and dropassociations between actions and input functions of the keyboard 108 andthe gaming controller 115. If an association is detected, the AMSapplication can proceed to step 824 where it can determine if a profilehas been identified in step 812 to record the association(s) detected.If a profile has been identified, the associations are recorded in saidprofile in step 826. If a profile has not been identified in step 812,the AMS application can create a profile in step 828 for recording thedetected associations. In the same step, the user can name the newlycreated profile as desired. The newly created profile can also beassociated with one or more software applications in step 830 for futurereference.

Once the association has been recorded in a profile, the AMS applicationcan determine in step 832 whether the dongle 202 shown illustratively inFIGS. 2-4 is available for programming. If the AMS application detectsthat the dongle 202 is communicatively coupled to the computer 204, theAMS application can proceed to step 834 of FIG. 8 where it submits theprofile and its contents to the dongle 204 for recording.

The GUI 101 presented by the AMS application can have other functions.For example, the GUI 101 can provide options for layout of the accessoryselected (button 122), how the keyboard is illuminated when associationsbetween input functions and actions are made (button 134), andconfiguration options for the accessory (button 126). The AMSapplication can adapt the GUI 101 to present more than one functionalperspective. For instance, by selecting button 102, the AMS applicationcan adapt the GUI 101 to present a means to create macros and associateactions to accessory input functions as depicted in FIG. 1. Selectingbutton 104 can cause the AMS application to adapt the GUI 101 to presentstatistics from raw stimulation information captured by the dongle 202as will be described below. Selecting button 106 can also cause the AMSapplication to adapt the GUI 101 to present promotional offers andsoftware updates.

It should be noted that the steps of method 800 in whole or in part canbe repeated until a desirable pattern of associations of actions toinput functions of the selected accessories has been accomplished. Itwould be apparent to an artisan with ordinary skill in the art thatthere can be numerous other approaches to accomplish similar results.These undisclosed approaches are contemplated by the present disclosure.

FIG. 9 depicts a method 900 in which the AMS application can beprogrammed to recognize unknown accessories so that method 800 can beapplied to new accessories. Method 900 can begin with step 902 in whichthe AMS application detects an unknown accessory such as a new keyboardfrom an unknown vendor by way of a communicative coupling to a computingdevice from which the AMS application operates. The AMS application inthis instance can receive an identity from the keyboard or the operatingsystem which is not known the AMS application. Upon detecting an unknownaccessory, the AMS application in step 904 can present a depiction of anaccessory of similar or same category in response to a user providingdirection as to the type of accessory (by selecting for example adrop-down menu). Alternatively, or in combination with the userinstructions, the AMS application can determine from the informationreceived from the unknown accessory an accessory type.

In step 906 the AMS application can receive instructions describing allor a portion of the input functions of the unknown accessory. Theseinstructions can come from a user who defines each input functionindividually or responds to inquiries provided by the AMS application.The AMS application can for example make an assumption as to thekeyboard layout and highlight each key with a proposed function whichthe user can verify or modify. Once the AMS application has beenprovided instructions in step 906, the AMS application can create anaccessory identity in step 908 which can be defined by the user. Insteps 910 and 912, the AMS application can associate and record theaccessory instructions with the identity for future recognition of theaccessory. In step 914, the AMS application can present a depiction ofthe new accessory with its identity along with the other selectableaccessories in section 117.

Method 900 can provide a means for universal detection andidentification of any accessory which can be used to control or managesoftware applications operating in a computing device.

FIG. 10 depicts a method 1000 for illustrating the operations of thedongle 202 for either of the configuration shown in FIGS. 3-4. Method1000 can begin with the dongle 202 establishing communications in steps1002 and 1004 with a computing device such the gaming console 306 ofFIGS. 3-4 and a gaming accessory such as reference 302. These steps canrepresent for example a user of the dongle 202 inserting the dongle 202into a USB port of the gaming console 306. Once the dongle 202 isinserted in the gaming console 306 it receives power from the gamingconsole 306, and establishes communications therewith. The dongle 202can also detect over a wireless medium (e.g., Bluetooth) that a gamingaccessory 302 has been detected. In step 1006, the gaming accessory 302can in turn provide the dongle 202 an accessory ID. With the accessoryID, the dongle 202 can identify in step 1008 a user account associatedwith the gaming accessory 302. In step 1010, the dongle 202 can retrieveone or more profiles associated with the user account.

In step 1012, the user can be presented by way of a display coupled tothe gaming console 302 the profiles available to the user to choose. Ifthe user makes a selection, the dongle 202 proceeds to step 1014 whereit retrieves from the selected profiles the association(s) storedtherein. If a selection is not made, the dongle can proceed to step 1016where it can determine from the gaming console 306 if it is activelycommunicating with a software gaming application operating in the gamingconsole 306 or operating in a remote system communicatively coupledthereto (e.g., on-line gaming application). If a gaming softwareapplication is detected, the dongle 202 proceeds to step 1018 where itretrieves the profile that matches the gaming application detected andthe association(s) contained therein. In the present context,association(s) can represent accessory stimulations, navigation, speech,initiation of other application, or macros thereof. The accessorystimulations can be stimulations that can be generated by the gamingaccessory 302 being used, stimulations from other unrelated accessories(e.g., a keyboard), or combinations thereof.

Once a profile and its contents have been retrieved in either of steps1014 or step 1018, the dongle can proceed to step 1020 where it monitorsstimulations generated by the gaming accessory 302. The stimulations canbe generated by the user by tactile use of the controls of the gamingaccessory 302. If a simulation is detected, the dongle 202 can determinein step 1022 whether to pass the detected stimulation(s) to an OperatingSystem (OS) of the gaming console 306 without alteration in step 1032 orwith substitutions in steps 1026-1030.

This determination can be made by comparing the detected stimulation(s)to triggers associated with one or more actions in the profile. If thedetected stimulation(s) match the stimulations identified as triggers,then the dongle 202 proceeds to step 1026 where it retrieves substitutestimulation(s) from the triggered action(s) in the profile. In step1028, the dongle 202 substitutes the detected stimulation(s) with thesubstitute stimulations and reports them to the OS of the gaming console306. If there is no matches detected in step 1022, the dongle 202transmits in step 1032 the detected stimulation to the OS of the gamingconsole 306 without alteration. In step 1034, the OS determines whetherto pass the reported stimulations to the gaming software application instep 1036, invoke a software application identified in thestimulation(s) reported in steps 1030 or 1032, or a combination thereof.

Contemporaneous to the embodiments described above, the dongle 202 canrecord in step 1040 statistics or raw data relating to the detectedaccessory stimulations. A portion of the dongle 202 application canoperate as a background process which records statistics and/or raw datarelating to the stimulations detected. During or after a gaming session,a user can direct the dongle 202 to supply the AMS application therecorded data. This transfer can take place by reengaging the dongle 202with the computer 204 physically or over an air interface such as WiFi.

Once the transfer of recorded data is made, the user can select button104 in FIG. 1, which causes the AMS application to present an updatedGUI such as shown in FIG. 6 which illustrates the usage of inputfunctions of one or more accessories for which stimulations weredetected in step 1020 of FIG. 10. For ease of illustration, assume thegaming accessory 302 of FIGS. 3-4 was a keyboard accessory instead of agaming controller 302.

In the illustration of FIG. 6, certain keys (references 604, 606 608,610) on the keyboard can be color-coded to illustrate the frequency ofusage of these keys. A color scale 603 defines the frequency of usage ofthe input functions of the keyboard. The first end of the scale (navyblue) represents a single detected depression, while an opposite end ofthe scale (bright red) represents 500 detected depressions. Based onthis scale, the AMS application maps by color in step 624 stimulationsof the keyboard. For example, the key grouping 608 depict a color codingwith the highest detectable usage, while the F7 key (reference 610)indicates the fewest depressions. Keys having zero depressions are notcolor coded to readily identify the color mapping of keys which wereused at least once.

The AMS application provides additional functions in a playback panel ofthe GUI which can help a user understand how the color coded keys wereused during an active software application such as a video game. In thissection of the GUI, the AMS application can present the user with aplayback control function 602 which the user can select to replay,pause, forward or rewind the usage of these keys. When usage playback isselected, the user can for instance see the color coded keys highlightedin real-time with a temporary white border to visualize how the keyswere selected. A time clock 204 provides the user the elapsed time ofthe playback sequence. Button 612 allows the user to retrieve statisticsfrom other sessions, while button 614 provides the user a means to savestatistics from a given session.

The GUI of FIG. 6 could have been shown as a split screen with allaccessories which generated one or more detected stimulations (e.g.,keyboard, mouse, and microphone), each providing statistical symbolicresults as described above for the keyboard. Although not shown, splitscreen embodiments are contemplated by the present disclosure for theGUI of FIG. 6.

In addition to a symbolic representation as shown in FIG. 6, the AMSapplication can provide the user a means to visualize raw statistics ina table format such as shown in FIG. 7 by selecting button 612. Thetable format shows raw data in section 702 and possible suggestions insection 704 for improving user performance which can be generated by theAMS application. Section 702 can be presented in a table format with acolumn identifying the key being analyzed, its usage, and number of keypresses. The user can ascertain from this table the most and leastfrequently used keys as well as other identifiable patterns.

The AMS application can utilize an understanding of the layout of theaccessory (in this case, the keyboard) to determine from the statisticsways that the user can improve response time or ergonomic use. Forexample, the AMS application can determine from a layout analysis thatthe key combination <Alt.> can be reassigned to a macro based on thetrigger <Ctrl F> which could provide the user a faster response time andfree up the user's right hand for other tasks. The AMS application canalso provide alternative suggestions. For example, the AMS applicationcan also suggest creating single button macros for each of the keycombinations <Alt.> and <Ctrl A> which can be assigned to keys on thekeyboard or left and right buttons of a mouse. The latter suggestion ofassigning macros to the mouse can help the user free up his/her lefthand.

The AMS application can utilize present and next generation algorithmsto determine how to improve response times and ergonomic usage ofaccessory devices. The AMS application can for example have at itsdisposal an understanding of the layout of each accessory, the type ofsoftware being controlled by the accessory (e.g., World of Warcraft),type of operations commonly used to control the software (e.g., knownactions as shown in the actions column 130 of FIG. 1), an understandingof the associations made by other users (e.g., gamers) to improve theirperformance when controlling the software, and so on. The AMSapplication can also be adapted to communicate with the active softwareapplication by way of an Application Programming Interface (API) toreceive additional usage statistics from the software which it can inturn use to improve the user's performance. The AMS application can alsoutilize common statistical and behavior modeling techniques to predictthe behavior of the user and responses from the software application toidentify possible ways to improve the user's performance.

From these illustrations, it would be apparent to an artisan of ordinaryskill in the art that innumerable algorithms can be developed to analyzeaccessory usage and thereby suggest improvements. These undisclosedembodiments are contemplated by the present disclosure.

From the foregoing descriptions, it would be evident to an artisan withordinary skill in the art that the aforementioned embodiments can bemodified, reduced, or enhanced without departing from the scope andspirit of the claims described below. For example, the AMS applicationcan be operated from other computing devices such as the gaming console306. In this embodiment, the dongle 202 can provide the AMS applicationby way of the gaming console 306 the recorded statistics during or aftera gaming session.

In another embodiment, the AMS application and dongle 202 can be adaptedto define more than one programmable layer for an accessory. Such afeature can extend the functionality of an accessory into multi-layerparadigms of input functions. The GUI of FIG. 1 can be adapted so that auser can specify more than one programmable layer for a specificaccessory. The user can also specify which layer to present in FIG. 1while associating actions. If for instance layer 1 is shown, the GUI ofFIG. 1 can present the actions associated in this layer by presentingdescriptors superimposed on the input functions (e.g., buttons or keys).When the user switches to layer 2 (e.g., by selecting from a drop-downmenu the layer of interest) the accessory can be shown in the GUI with adifferent set of associated actions. The user can define a macro oridentify a key sequence to switch between layers when the accessory isin use.

The trigger for switching between layers can be a toggle function (e.g.,selecting the tab key on a Qwerty keyboard) to switch between layers ina round robin fashion (layer 1→layer 2→layer 3→ to layer 1→ and so on).Alternatively, the user can define a hold and release trigger to switchbetween layers. In this embodiment, the user moves to another layerwhile pressing a button (e.g., a “Shift” key) and returns to thepreceding layer upon its release. In yet another embodiment, the triggerto switch layers can be defined differently per layer. The user can forexample select the letter “A” in layer 1 to proceed to layer 2, andselect the letter “B” in layer 2 to return to layer 1 or proceed to yetanother layer 3. There can be numerous combinations of layers andtriggers which can be defined to substantially expand the capability ofsingle accessory.

The foregoing multilayer paradigm can be programmed into the dongle 202by the AMS application.

In another embodiment, the AMS application can be adapted so that a usercan define super macros and/or super profiles. A super macro canrepresent nested macros (combinations of macros). AMS application can beadapted so that the user can customize the timing for executing nestedmacros. Similarly, a super profile can represent nested profiles(combinations of profiles). A super profile can for example comprisesub-profiles, each sub-profile defining associations of actions to inputfunctions of a particular accessory. The super macros and/or profilescan be programmed into the dongle 202.

In yet another embodiment, the gaming accessory 302 can be equipped witha biometric device such as a fingerprint reader to identify the user ofthe gaming accessory 302 and thereby provide an identity that describesthe user and the accessory used thereby. In this embodiment, differentusers can utilize the same gaming accessory but invoke in the dongle 202a different user account depending on the biometric data provided withthe accessory ID.

The foregoing embodiments are a subset of possible embodimentscontemplated by the present disclosure. Other suitable modifications canbe applied to the present disclosure. Accordingly, the reader isdirected to the claims for a fuller understanding of the breadth andscope of the present disclosure.

FIG. 11 depicts an exemplary diagrammatic representation of a machine inthe form of a computer system 1100 within which a set of instructions,when executed, may cause the machine to perform any one or more of themethodologies discussed above. In some embodiments, the machine operatesas a standalone device. In some embodiments, the machine may beconnected (e.g., using a network) to other machines. In a networkeddeployment, the machine may operate in the capacity of a server or aclient user machine in server-client user network environment, or as apeer machine in a peer-to-peer (or distributed) network environment.

The machine may comprise a server computer, a client user computer, apersonal computer (PC), a tablet PC, a laptop computer, a desktopcomputer, a control system, a network router, switch or bridge, or anymachine capable of executing a set of instructions (sequential orotherwise) that specify actions to be taken by that machine. It will beunderstood that a device of the present disclosure includes broadly anyelectronic device that provides voice, video or data communication.Further, while a single machine is illustrated, the term “machine” shallalso be taken to include any collection of machines that individually orjointly execute a set (or multiple sets) of instructions to perform anyone or more of the methodologies discussed herein.

The computer system 1100 may include a processor 1102 (e.g., a centralprocessing unit (CPU), a graphics processing unit (GPU, or both), a mainmemory 1104 and a static memory 1106, which communicate with each othervia a bus 1108. The computer system 1100 may further include a videodisplay unit 1110 (e.g., a liquid crystal display (LCD), a flat panel, asolid state display, or a cathode ray tube (CRT)). The computer system1100 may include an input device 1112 (e.g., a keyboard), a cursorcontrol device 1114 (e.g., a mouse), a disk drive unit 1116, a signalgeneration device 1118 (e.g., a speaker or remote control) and a networkinterface device 1120.

The disk drive unit 1116 may include a machine-readable medium 1122 onwhich is stored one or more sets of instructions (e.g., software 1124)embodying any one or more of the methodologies or functions describedherein, including those methods illustrated above. The instructions 1124may also reside, completely or at least partially, within the mainmemory 1104, the static memory 1106, and/or within the processor 1102during execution thereof by the computer system 1100. The main memory1104 and the processor 1102 also may constitute machine-readable media.

Dedicated hardware implementations including, but not limited to,application specific integrated circuits, programmable logic arrays andother hardware devices can likewise be constructed to implement themethods described herein. Applications that may include the apparatusand systems of various embodiments broadly include a variety ofelectronic and computer systems. Some embodiments implement functions intwo or more specific interconnected hardware modules or devices withrelated control and data signals communicated between and through themodules, or as portions of an application-specific integrated circuit.Thus, the example system is applicable to software, firmware, andhardware implementations.

In accordance with various embodiments of the present disclosure, themethods described herein are intended for operation as software programsrunning on a computer processor. Furthermore, software implementationscan include, but not limited to, distributed processing orcomponent/object distributed processing, parallel processing, or virtualmachine processing can also be constructed to implement the methodsdescribed herein.

The present disclosure contemplates a machine readable medium containinginstructions 1124, or that which receives and executes instructions 1124from a propagated signal so that a device connected to a networkenvironment 1126 can send or receive voice, video or data, and tocommunicate over the network 1126 using the instructions 1124. Theinstructions 1124 may further be transmitted or received over a network1126 via the network interface device 1120.

While the machine-readable medium 1122 is shown in an example embodimentto be a single medium, the term “machine-readable medium” should betaken to include a single medium or multiple media (e.g., a centralizedor distributed database, and/or associated caches and servers) thatstore the one or more sets of instructions. The term “machine-readablemedium” shall also be taken to include any medium that is capable ofstoring, encoding or carrying a set of instructions for execution by themachine and that cause the machine to perform any one or more of themethodologies of the present disclosure.

The term “machine-readable medium” shall accordingly be taken toinclude, but not be limited to: solid-state memories such as a memorycard or other package that houses one or more read-only (non-volatile)memories, random access memories, or other re-writable (volatile)memories; magneto-optical or optical medium such as a disk or tape; andcarrier wave signals such as a signal embodying computer instructions ina transmission medium; and/or a digital file attachment to e-mail orother self-contained information archive or set of archives isconsidered a distribution medium equivalent to a tangible storagemedium. Accordingly, the disclosure is considered to include any one ormore of a machine-readable medium or a distribution medium, as listedherein and including art-recognized equivalents and successor media, inwhich the software implementations herein are stored.

Although the present specification describes components and functionsimplemented in the embodiments with reference to particular standardsand protocols, the disclosure is not limited to such standards andprotocols. Each of the standards for Internet and other packet switchednetwork transmission (e.g., TCP/IP, UDP/IP, HTML, HTTP) representexamples of the state of the art. Such standards are periodicallysuperseded by faster or more efficient equivalents having essentiallythe same functions. Accordingly, replacement standards and protocolshaving the same functions are considered equivalents.

The illustrations of embodiments described herein are intended toprovide a general understanding of the structure of various embodiments,and they are not intended to serve as a complete description of all theelements and features of apparatus and systems that might make use ofthe structures described herein. Many other embodiments will be apparentto those of skill in the art upon reviewing the above description. Otherembodiments may be utilized and derived therefrom, such that structuraland logical substitutions and changes may be made without departing fromthe scope of this disclosure. Figures are also merely representationaland may not be drawn to scale. Certain proportions thereof may beexaggerated, while others may be minimized. Accordingly, thespecification and drawings are to be regarded in an illustrative ratherthan a restrictive sense.

Such embodiments of the inventive subject matter may be referred toherein, individually and/or collectively, by the term “invention” merelyfor convenience and without intending to voluntarily limit the scope ofthis application to any single invention or inventive concept if morethan one is in fact disclosed. Thus, although specific embodiments havebeen illustrated and described herein, it should be appreciated that anyarrangement calculated to achieve the same purpose may be substitutedfor the specific embodiments shown. This disclosure is intended to coverany and all adaptations or variations of various embodiments.Combinations of the above embodiments, and other embodiments notspecifically described herein, will be apparent to those of skill in theart upon reviewing the above description.

The Abstract of the Disclosure is provided to comply with 37 C.F.R.§1.72(b), requiring an abstract that will allow the reader to quicklyascertain the nature of the technical disclosure. It is submitted withthe understanding that it will not be used to interpret or limit thescope or meaning of the claims. In addition, in the foregoing DetailedDescription, it can be seen that various features are grouped togetherin a single embodiment for the purpose of streamlining the disclosure.This method of disclosure is not to be interpreted as reflecting anintention that the claimed embodiments require more features than areexpressly recited in each claim. Rather, as the following claimsreflect, inventive subject matter lies in less than all features of asingle disclosed embodiment. Thus the following claims are herebyincorporated into the Detailed Description, with each claim standing onits own as a separately claimed subject matter.

What is claimed is:
 1. An apparatus, comprising: a controller; and amemory that stores executable instructions that, when executed by thecontroller, facilitate performance of operations comprising: determininga user profile of a plurality of user profiles associated with a gamingaccessory comprising a plurality of programmable layers; detecting agaming accessory stimulation signal of the gaming accessory associatedwith a programmable layer of the plurality of programmable layers; andidentifying a substitute accessory stimulation based on the gamingaccessory stimulation by way of a predetermined association of thegaming accessory stimulation with the substitute accessory stimulationof the programmable layer of the plurality of programmable layers,wherein the predetermined association is recorded in the user profile ofthe plurality of user profiles, wherein other predetermined associationsof stimulations of the gaming accessory with other substitute accessorystimulations are recorded in other user profiles of the plurality ofuser profiles, and wherein the substitute accessory stimulation of theprogrammable layer of the plurality of programmable layers, is providedto a gaming software application in place of the gaming accessorystimulation, responsive to the identifying of the substitute accessorystimulation.
 2. The apparatus of claim 1, wherein the gaming accessorycorresponds to one of a keyboard, a gaming pad, a mouse, a gamingconsole controller, a joystick, a microphone, a headset with amicrophone, and wherein the identifying of the user profile of theplurality of user profiles associated with the gaming accessory is basedon identity information received from the gaming accessory.
 3. Theapparatus of claim 1, wherein the operations further comprise: accessingthe predetermined association by way of an accessory management softwareapplication operating in a computing device or another computing systemcommunicatively coupled to the gaming software application; determiningidentity information by way of one of the gaming accessory and thecomputing device to obtain an identified user account of a plurality ofuser accounts according to the identity information, wherein theplurality of user accounts are associated with the plurality of userprofiles; retrieving the user profile from the plurality of profiles toobtain a retrieved profile according to the identified user account; andretrieving the association from the retrieved profile.
 4. The apparatusof claim 3, wherein the accessory management software application isoperable to present in a graphical user interface a plurality ofassociable actions and a plurality of accessories, wherein an actionfrom the plurality of associable actions comprises the substituteaccessory stimulation, and wherein the accessory corresponds to thegaming accessory; receive a request to associate the action of theplurality of associable actions with an input function of the gamingaccessory, wherein the input function when selected generates thestimulation; and transmit the association to the apparatus.
 5. Theapparatus of claim 1, further comprising recording the predeterminedassociation of the substitute accessory stimulation with the gamingaccessory stimulation in association with the user profile and a useraccount associated with the user profile.
 6. The apparatus of claim 1,wherein the operations further comprise associating the profilecomprising the association with the gaming software application, andwherein the identifying of the user profile of the plurality of userprofiles associated with the gaming accessory is based on a selection ofthe user profile responsive to a presentation of the plurality of userprofiles.
 7. The apparatus of claim 6, wherein the operations furthercomprise: detecting the gaming software application after establishingcommunications with a computing device; selecting the profile comprisingthe association responsive to detecting the gaming software application;and retrieving the association from the profile.
 8. The apparatus ofclaim 1, wherein the apparatus corresponds to a dongle physicallyengaged with a port of a computing device communicatively coupled to thegaming software application.
 9. A non-transitory, machine-readablestorage medium device, comprising executable instructions that, whenexecuted by a processor, facilitate performance of operations,comprising: determining a user profile of a plurality of user profilesassociated with a gaming accessory comprising a plurality ofprogrammable layers; detecting a gaming accessory stimulation of thegaming accessory associated with a programmable layer of the pluralityof programmable layers; and identifying a substitute accessorystimulation based on a predetermined association of the gaming accessorystimulation with the substitute accessory stimulation of theprogrammable layer of the plurality of programmable layers, wherein thepredetermined association is recorded in the user profile associatedwith a user account, wherein other predetermined associations ofstimulations of the gaming accessory with other substitute accessorystimulations are recorded in other user profiles of the plurality ofuser profiles, wherein the substitute accessory stimulation is providedto a computing device, in response to the identifying of the substituteaccessory stimulation of the programmable layer, to manage operations ofa gaming software application communicatively coupled to the computingdevice.
 10. The non-transitory, machine-readable storage medium of claim9, further comprising: determining identity information from one of thegaming accessory and the computing device; identifying a user accountbased on the identity information; retrieving the profiles in responseto the identifying of the user account; and retrieving the associationfrom the profile.
 11. The non-transitory, machine-readable storagemedium of claim 9, wherein the gaming software application is executedin the computing device.
 12. The non-transitory, machine-readablestorage medium of claim 9, wherein the gaming software application isexecuted in a remote computer system that is communicatively coupled tothe computing device.
 13. The non-transitory, machine-readable storagemedium of claim 9, wherein the gaming accessory corresponds to one of akeyboard, a gaming pad, a mouse, a gaming console controller, ajoystick, a microphone, a headset comprising a microphone, and whereinthe computing device corresponds to one of a computer system and agaming console.
 14. The non-transitory, machine-readable storage mediumof claim 9, wherein the non-transitory, machine-readable storage mediumoperates in portable apparatus that is physically or wireless engaged toeach of the gaming accessory and the computing device.
 15. A method,comprising: detecting, by a system comprising a processor, a gamingaccessory stimulation associated with a programmable layer of aplurality of programmable layers; and identifying, by the system, asubstitute gaming accessory stimulation of the programmable layer of theplurality of programmable layers of a gaming accessory, wherein thesubstitute gaming accessory stimulation of the programmable layer isassociated with the gaming accessory stimulation of the programmablelayer of the plurality of programmable layers, according to a userprofile of a plurality of user profiles, wherein other predeterminedassociations of stimulations of the gaming accessory with othersubstitute accessory stimulations are recorded in other user profiles ofthe plurality of user profiles, wherein the substitute gaming accessorystimulation is provided to a computing device to manage a gamingsoftware application.
 16. The method of claim 15, wherein the gamingaccessory corresponds to one of a keyboard, a gaming pad, a mouse, agaming console controller, a joystick, a microphone, a headset with amicrophone, and wherein the computing device corresponds to one of acomputer system and a gaming console.
 17. The method of claim 15,comprising gathering, by the system, usage information of the gamingaccessory by collecting stimulations generated therefrom.
 18. The methodof claim 17, comprising transmitting, by the system, the usageinformation to an accessory software management application to presentstatistical information associated with the usage information.
 19. Themethod of claim 17, further comprising: recording, by the system, in theuser profile, an association of the gaming accessory stimulation withthe substitute gaming accessory stimulation for the programmable layerof the plurality of programmable layers of the gaming accessory; andassociating, by the system, the user profile with a user accountassociated with the user profile.
 20. The method of claim 17, furthercomprising: receiving, by the system, identity information from one ofthe gaming accessory and the computing device; identifying, by thesystem, a user account based on the identity information; retrieving, bythe system, the user profile based on a user account associated with theuser profile; and retrieving, by the system, the association from theuser profile.